﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace FrbaBus.UserInterface.ABM.Roles
{
    using FrbaBus.DataRepository;
    public partial class bajaModificacionRol : Form
    {
        DataView dv = new DataView();

        ValidacionesGenericas validacionesGenericas;
        RolRepository rolRepository;


        public bajaModificacionRol()
        {
            InitializeComponent();
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            btnBorrar.Enabled = false;
            modificarButton.Enabled = false;
            validacionesGenericas = new ValidacionesGenericas();
            rolRepository = new RolRepository();
        }


        private void modificarButton_Click(object sender, EventArgs e)
        {
            try
            {
                //  Recupero los valores de la GUI.
                string nombreRol = nombreFiltroTextbox.Text;

                //  Valido los campos obligatorios
                validacionesGenericas.campoObligatorio(nombreRol, "El nombre del rol es obligatorio.");

                //  Modifico en la BD
                rolRepository.modificar(nombreRol);
               

                MessageBox.Show("Se modificó el rol correctamente.");
            }
            catch (ValidacionNegocioException excepcionValidacion)
            {
                MessageBox.Show(excepcionValidacion.MensajeAlusuario);
            }
        }



                private void bajaButton_Click(object sender, EventArgs e)
        {
            try
            {
                //  Recupero los valores de la GUI.
                string nombreRol = nombreFiltroTextbox.Text;

                //  Valido los campos obligatorios
                validacionesGenericas.campoObligatorio(nombreRol, "El nombre del rol es obligatorio.");

                //  Doy de Baja en la BD el Rol
                MessageBox.Show ("The calculations are complete", "My Application", 
                MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);


                rolRepository.baja(nombreRol);
               

                MessageBox.Show("Se modificó el rol correctamente.");
            }
            catch (ValidacionNegocioException excepcionValidacion)
            {
                MessageBox.Show(excepcionValidacion.MensajeAlusuario);
            }
        }

        private void bajaModificacionRol_Load(object sender, EventArgs e)
        {
            //Muestra los datos de la tabla
            DataTable dt = new DataTable();
            SqlConnection con = new SqlConnection(@"Data Source=.\SQLSERVER2008;Initial Catalog=GD1C2013;Integrated Security=True");
            con.Open();
            dt.Load(new SqlCommand("select NOMBRE, ESTADO from TUVAS.ROL", con).ExecuteReader());
            dataGridView1.DataSource = dv = dt.DefaultView;
            con.Close();
        }

        private void buscarButton_Click(object sender, EventArgs e)
        {

        }

        private void nombreFiltroTextbox_TextChanged(object sender, EventArgs e)
        {
            //Filtra los resultados según el nombre que se ingresa en el Textbox
            dv.RowFilter = "nombre like '%" + nombreFiltroTextbox.Text + "%'";
            if (nombreFiltroTextbox.Text == "") dv.RowFilter = string.Empty;
        }

        private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (Convert.ToInt32(this.dataGridView1.Rows.Count) >= 1)
            {
                int filaseleccionada = Convert.ToInt32(this.dataGridView1.CurrentRow.Index);
                txtNombre.Text = this.dataGridView1.Rows[filaseleccionada].Cells[0].Value + "";
                txtEstado.Text = this.dataGridView1.Rows[filaseleccionada].Cells[1].Value + "";
            }
        }

        private void modificarButton_Click_1(object sender, EventArgs e)
        {
        }

        private void txtNombre_TextChanged(object sender, EventArgs e)
        {
            modificarButton.Enabled = true;
            btnBorrar.Enabled = true;
           
        }

        private void txtEstado_TextChanged(object sender, EventArgs e)
        {
            modificarButton.Enabled = true;
        }

        private void btnBorrar_Click(object sender, EventArgs e)
        {

        }

       
    }
}
